<?php 

/**
 * Controleur permettant de gérer la création de commandes
 */
require_once('dao/Dao.php');
require_once('dao/CommandeDao.php');
require_once('dao/ClientDao.php');
require_once('dao/OffreVenteDao.php');
require_once('dao/CarteSimDao.php');
require_once('dao/OffreMobileDao.php');
require_once('requests/ActivationRequest.php');
require_once('requests/ActivationRequestFixe.php');

if ($_SESSION['niveauAuth']=='1' or $_SESSION['niveauAuth']=='2' or $_SESSION['niveauAuth']=='3' or $_SESSION['niveauAuth']=='4' or $_SESSION['niveauAuth']=='5' or $_SESSION['niveauAuth']=='6' or $_SESSION['niveauAuth']=='7' or $_SESSION['niveauAuth']=='8' or $_SESSION['niveauAuth']=='9') {

// Traitement des actions
if(isset($_POST['action']) || isset($_GET['action'])) {
	// Gestion de l'action de suppression de ligne de la commade
	if (isset($_GET['action']) &&  $_GET['action'] == "delete-line"){
	
		if (CommandeDao::delete("ligne_commande","ndi=".$_GET['ndi']." OR id=".$_GET['ligne-id'])){
			CarteSimDAO::changerStatut($_GET['sim'], "Available"); 
			$message = "Suppression de la ligne de la commande avec succès";
		} else {
			$error = "Erreur lors de la suppression de la ligne de la commande";
		}
		
	// Suppression de la commande
	} else if (isset($_POST['action']) &&  $_POST['action'] == "delete"){
		CommandeDao::delete("commande",'id="'.$_SESSION['commande_en_cours'].'"');
		
		$_SESSION['commande_en_cours'] = null;
		redirect("liste-client");
	
	// Validation de la commande
	} else if (isset($_POST['action']) &&  $_POST['action'] == "validate"){

		//récupération des commandes
		$lignes_commande = CommandeDao::getLignesCommandeMobile($_POST['id']); 
		
		$lignes_Commande_fixe = CommandeDao::getLignesCommandeFixe($_POST['id']);
		if(!$lignes_Commande_fixe){$lignes_Commande_fixe = array();}
		
		$lignes_Commande_Options_fixe = CommandeDao::getOptionsLignesCommandeFixe($_POST['id']);
		if(!$lignes_Commande_Options_fixe){$lignes_Commande_Options_fixe = array();}
		
		$lignes_commande = array_merge($lignes_commande,$lignes_Commande_fixe,$lignes_Commande_Options_fixe);

		$commande = CommandeDao::findByCommandeId($_POST['id']);	
		$client = ClientDao::searchById($commande['code_client_hto']);
		$nom_client = $client[0]['raison_social'];	
		
		//ajout dans le detail client des lignes fixes commandées
		$validate_commande_fixe = ClientDao::ajouterLigneFixe($_POST['id'], $commande['code_client_hto']); 
		//ajout dans le detail client des lignes Adsl commandées
		$validate_commande_xdsl = ClientDao::ajouterLigneAdsl($_POST['id'], $commande['code_client_hto']); 

		if($validate_commande_fixe == "ok" or $validate_commande_xdsl == "ok")
		{
			$type_mail = "Commande de ligne";
			if (!MM_DEV_MODE){$resultat_mail = MailDao::EnvoiMailCommandeFixe($type_mail,$nom_client);}
		}
		
		// Réservation des SIM liées aux lignes base
		foreach ($lignes_commande as $ligne_commande){
			if (!empty($ligne_commande['carte_sim'])){
				CarteSimDAO::changerStatut($ligne_commande['carte_sim'], "Allocated");
			}
		}
		
		// Envoi du fichier CSV auprès d'OBS
		if (!empty($ligne_commande['carte_sim'])){
			ActivationRequest::createRequest($_POST['id']);
		}
		
		// Envoi du fichier CSV ligne fixe
		if (in_array($ligne_commande['type_offre'],array('vga','vga_option','vga_num','vga_num_option','voip','voip_option','xdsl','xdsl_option')))
		{
			ActivationRequestFixe::createRequest($_POST['id']);
		}

		// Changement du statut de la commande
		if (!empty($ligne_commande['carte_sim'])){
			CommandeDao::changerStatut($_POST['id'], "envoyée");
			$message = "Commande envoyée avec succès";
		}else{
			CommandeDao::changerStatut($_POST['id'], "traitée");
			$message = "Commande traitée";
		}
		redirect("creation-commande?id=".$_POST['id']."&test=".$nom_client);
	}
}

// si création de commande
if(isset($_GET['code_client_hto']) and isset($_GET['action']) and $_GET['action']=="creation-commande" )
{	 
	$commande_id = CommandeDao::creer($_GET['code_client_hto']);
	$code_client_hto = $_GET['code_client_hto'];
}else{
	$code_client_hto = "";	
}

// Récupération des éléments de la base
if(isset($_GET['id']))
{
	$commande = CommandeDao::findByCommandeId($_GET['id']);
	
	$lignes_commande_mobile = CommandeDao::getLignesCommandeMobile($_GET['id']);
	
	$lignes_commande_fixe = CommandeDao::getLignesCommandeFixe($_GET['id']);
	if(empty($lignes_commande_fixe)){$lignes_commande_fixe=array();}
	
	$lignes_commande = array_merge($lignes_commande_mobile,$lignes_commande_fixe);
}elseif(isset($commande_id)){
	$commande = CommandeDao::findByCommandeId($commande_id);
	$lignes_commande=0;
}else{
	$commande = NULL;
	$lignes_commande=NULL;
}

$client = ClientDao::searchById($commande['code_client_hto']);

$options_mobile = CommandeDao::getLignesOm();

if(isset($_GET['id'])){
	$options_fixe = CommandeDao::getOptionsFixe($_GET['id']);
	
}else{
	$options_fixe = NULL;
	}

// Rendu de la page
echo $twig->render('creation-commande.html',
		array(	'commande' => $commande,
				'code_client_hto' => $code_client_hto,
				'options_fixe' => $options_fixe,
				'options_mobile' => $options_mobile,
				'client' => $client[0],
				'lignes_commande' => $lignes_commande,
				'message' => $message,
				'error' => $error));

}else {
	redirect("home-admin");
}